package com.dd.cloud.user.mapper.role;

import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.dd.cloud.user.entity.role.RoleMenu;
import org.apache.ibatis.annotations.Param;

import java.util.List;

/**
 * @author zk
 */
public interface RoleMenuMapper extends BaseMapper<RoleMenu> {
    /**
     * 查询管理员拥有的父级菜单
     *
     * @param flag
     * @param userId
     * @return
     */
    List<RoleMenu> getRoleMenusParentByUserId(@Param("flag") Integer flag, @Param("userId") Integer userId);

    /**
     * 查询管理员拥有的子级菜单
     *
     * @param flag
     * @param userId
     * @param pid
     * @return
     */
    List<RoleMenu> getRoleMenusSonByUserId(@Param("flag") Integer flag, @Param("userId") Integer userId, @Param("pid") Integer pid);

    /**
     * 查询管理员拥有的菜单
     *
     * @param flag
     * @param userId
     * @return
     */
    List<RoleMenu> getUserMenuByUserId(@Param("flag") Integer flag, @Param("userId") Integer userId);

    /**
     * 查询管理员拥有的菜单
     *
     * @param flag
     * @return
     */
    List<RoleMenu> getUserMenuByType(@Param("flag") Integer flag);

    /**
     * 查询系统,机构或者药房管理系统菜单
     *
     * @param flag
     * @return
     */
    List<RoleMenu> getRoleMenuByType(@Param("flag") Integer flag);

    /**
     * 查询角色拥有的菜单
     *
     * @param roleId
     * @return
     */
    List<RoleMenu> getRoleMenuByRoleId(@Param("roleId") Integer roleId);

    /**
     * 查询管理员是否有该url权限
     *
     * @param userId
     * @param url
     * @return
     */
    Integer getRoleMenuByRoleIdAndUrl(@Param("userId") Integer userId, @Param("url") String url);
}
